import java.util.Random;

public class damo3 {
    //生成验证码
    //内容:可以是小写字母,也可以是大写字母,还可以是数字
    //规则:长度为5
    //内容中是四位字母,1位数字
    //其中数字只有1位,但可以出现在任意位置
    public static void main(String[] args) {
        //我的想法是直接用制表法存全部大写字母和小写字母,用随机数从表里面随机抽取,循环4次,再随机生成一个数字,打乱字符串顺序
        char[] c = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
                'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
                't', 'u', 'v', 'w', 'x', 'y', 'z',
                'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
                'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
                'Y', 'Z',};
        //长度为52的char字符串
        Random r = new Random();
        String count = "";
        for (int i = 0; i < 4; i++) {
            int number = r.nextInt(c.length);
            count = c[number] + count;
        }
        int number = r.nextInt(9) + 1;
        //到这一步已经生成了一个由字符和数字组成的验证码


            count = count + number;
            System.out.println("原验证码为"+count);
            String random = random(count);
            System.out.println(random);
        

    }

    //打乱验证码顺序的方法
    public static String random(String count) {
        Random r = new Random();
        int number = r.nextInt(5);
        char[] charArray = count.toCharArray();
        char c = ' ';
        for (int i = 0; i < count.length(); i++) {
            c = charArray[i];
            charArray[i] = charArray[number];
            charArray[number] = c;
        }
        String newString = "";
        for (int i = 0; i < charArray.length; i++) {
            newString = charArray[i] + newString;
        }
        return newString;

    }
}
